package com.castle.fortress.admin.study.course.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;

/**
 * 课程管理 实体类
 *
 * @author castle
 * @since 2023-01-30
 */
@Data
public class StudyCourseDto implements Serializable {
	private static final long serialVersionUID = 1L;
	@JsonSerialize(using = ToStringSerializer.class)
	@JsonProperty("id")
	private Long id;
	@JsonSerialize(using = ToStringSerializer.class)
	@JsonProperty("classifyId")
	private Long classifyId;
	@JsonProperty("courseName")
	private String courseName;
	@JsonProperty("coverImg")
	private String coverImg;
	@JsonProperty("courseSynopsis")
	private String courseSynopsis;
	@JsonProperty("courseStatus")
	private Integer courseStatus;
	@JsonProperty("classStatus")
	private Integer classStatus;
	@JsonProperty("isRecommend")
	private Integer isRecommend;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonProperty("recommendTime")
	private Date recommendTime;
	@JsonProperty("status")
	private Integer status;
	@JsonSerialize(using = ToStringSerializer.class)
	@JsonProperty("createUser")
	private Long createUser;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonProperty("createTime")
	private Date createTime;
	@JsonSerialize(using = ToStringSerializer.class)
	@JsonProperty("updateUser")
	private Long updateUser;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonProperty("updateTime")
	private Date updateTime;
	@JsonProperty("isDeleted")
	private Integer isDeleted;
	@JsonProperty("sort")
	private Integer sort;
	@JsonProperty("createUserName")
	private String createUserName;
	@JsonProperty("classifyIdName")
	private String classifyIdName;
	@JsonProperty("chapterList")
	private List<StudyCourseChapterDto> chapterList;
	//已完成课件数
	@JsonProperty("finishCoursewares")
	private Integer finishCoursewares;
	//总课件数
	@JsonProperty("totalCoursewares")
	private Integer totalCoursewares;
	//学习该课程的总会员数
	@JsonProperty("totalMembers")
	private Integer totalMembers;
	//学习该课程的总时间 分钟
	@JsonProperty("totalMinutes")
	private Integer totalMinutes;
	@JsonProperty("recommendType")
	private String recommendType;
	//是否收藏 YesNo
	@JsonProperty("isCollect")
	private Boolean isCollect;
	//课程是否被绑定
	@JsonProperty("isBind")
	private Boolean isBind;
	@JsonProperty("memberName")
	private String memberName;
	/**
	 * 学习进度 00 未完成 01 已完成
	 */
	@JsonProperty("studyStatus")
	private String studyStatus;

}
